package com.promise.jokerdream.config.task

import kotlinx.serialization.Serializable

/**
 * 定时任务配置
 */
@Serializable
data class TimerTaskConfig(
    val id: String,
    val taskName: String,
    val startTime: String, // 开始时间，格式：HH:mm
    val endTime: String, // 结束时间，格式：HH:mm
    val isEnabled: Boolean = true,
    val lastExecutedDate: String? = null // 最后执行日期，格式：yyyy-MM-dd
) {
    /**
     * 判断今天是否已执行
     * 游戏的一天是从早上6点到第二天早上6点
     */
    fun isTodayExecuted(): Boolean {
        val now = java.time.LocalDateTime.now()
        val currentHour = now.hour
        
        // 获取游戏日期：如果当前时间在6点之前，则属于前一天
        val gameDate = if (currentHour < 6) {
            now.minusDays(1).toLocalDate()
        } else {
            now.toLocalDate()
        }
        
        return lastExecutedDate == gameDate.toString()
    }
}
